# docker network
管理网络,包括创建,查看,列表,删除,移除,连接和断开
# 1 网络命令汇总
docker network createdocker network rmdocker network connectdocker network disconnectdocker network lsdocker network inspectdocker network prune
# 2 网络命令详解
# 2.1 docker network create
格式
# 创建一个网络 # docker network create [OPTOINS] NETWORK docker run --itd --network=mynet busybox # --specify advanced options docker network create --driver bridge --subnet 192.168.100.0/24 my_br0 docker network create \ --driver bridge \ --subnet 172.27.0.0/16 \ -ip-range 172.27.5.0/24 \ --gateway 172.27.5.254 \ my_br0 # docker network create \ -d overlay \ --subnet 192.168.10.0/25 \ --subnet 192.168.20.0/25 \ --gateway 192.168.10.100 \ --gateway 192.168.20.100 \ --aux-address "my-router=192.168.10.5" \ --aux-address "my-switch=192.168.10.6" \ --aux-address "my-printer=192.168.20.5" \ --aux-address "my-nas=192.168.20.6" \ my-multihost-network # Network ingress mode docker network create -d overlay \ --subnet=10.11.0.0/16 \ --ingress \ --opt com.docker.network.driver.mtu=9216 \ --opt encrypted=true \ my-ingress-network选项
--attachable启动手动容器附件--aux-address网络驱动程序使用辅助的IPv4或IPv6.--config-from从其中复制配置的网络--config-only创建仅配置的网络-d,--driver驱动程序管理网络,默认bridge--gatewayIPv4或IPv6的子网网关--ingress创建集群路由网状网络--internal限制外面网络访问--ip-range从一个子范围分配容器IP--ipm-driverip地址管理驱动ipm-opt设置ip地址管理驱动特定选项--ipv6启用IPv6网络--label设置网络的label-o, --opt设置驱动的特定选项--scope控制网络的范围--subnet子网掩码(CICR格式:10.16.0.1/24)
# 2.2 docker network rm
- 格式
# docker network rm NETWORK [NETWORK...]
docker network rm my_br0
docker network rm 3682938cf33 my-network
# 2.3 docker network connect
连接一个容器到网络
- 格式
# docker network connect [OPTIONS] NETWORK CONTAINER
docker run -itd --name container2 --network=multi-host-network busybox
docker network connect --ip 10.10.36.122 multi-host-network container2
docker network connect --link container1:c1 multi-host-network container2
docker network connect --alias db --alias mysql multi-host-network container2
#用了指定ip时,最好用ip-range指定ip范围,确保指定ip不在指定ip范围内,这样不会引起ip冲突
docker network create --subnet 172.20.0.0/16 --ip-range 172.20.240.0/20 multi-host-network
docker network connect --ip 172.20.128.2 multi-host-network container2
- 选项
--alias给容器增加网络范围的别名--driver-opt网络的驱动选项--ipIPv4地址(eg,172.18.100.123)--ip6IPv6地址(eg,2001:db8:33)--link增加到另一个容器的连接--link-local-ip给容器增加一个连接本地地址
# 2.4 docker network disconnect
断开一个容器与网络的连接
- 格式
# docker network disconnect [OPTIONS] NETWORK CONTAINER
docker network disconnect multi-host-network container1
- 选项
-f,--force强制断开容器和网络连接
# 2.5 docker network ls
格式
# docker network ls [OPTIONS] docker network ls docker network ls --no-trunc # filter driver|id|label(label=<key>|label=<key>=<val>)|name|scope(swarm|global|local)|type(custom|builtin) docker network ls --filter driver=bridge docker network ls -f id=63d1ff1f77b docker network ls -f "label=env" docker network ls -f "label=env=dev" docker network ls -f "name=dss_" docker network ls -f scope=swarm docker network ls -f scope=local docker network ls -f type=custom # 有用的使用,批量删除手动创建的network docker network rm `docker network ls -f type=custom -q` # format .ID|.Name|.Driver|.Scope|.IPv6|.Internal|.Labels|.Label|.CreatedAt docker network ls --format "{{.ID}}:{{.Driver}}"选项
-f,--force--format--no-trunc不截断输出-q,--quiet只显示IDs
# 2.6 docker network inspect
格式
# docker network inspect [OPTIONS] NETWORK [NETWORK...] docker network inspect my-network选项
-f,--format-v,--verbose
# 2.7 docker network prune
移除所有未使用的网络
格式
# docker network prune [OPTIONS] docker network prune # filter until(timestamp)|label(label=<key>|label=<key>=<val>|label!=<key>|label!=<key>=<val>) #移除5小时前创建的网络 docker network prune --force --filter until=5h选项
--filter-f,--force强制执行而不提示确认